iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0

碰撞器是一種物理元件,在遊戲中擁有多項重要的功能。
遊戲角色移動時,若碰到樹木、房屋,岩壁等障礙物,理論上應該無法繼續前進,才符合現實世界的物理法則。我們只要在物件加上碰撞器元件,玩家控制的 角色就被擋住,而不會發生穿過物件的不合理情形。而物件從空中掉落時,若是沒有加上碰撞器,也會穿過地面而不會停止下來。
需要發射武器的射擊遊戲(例如子彈、飛彈、雪球等),也可透過碰撞器判定是否擊中目標。
此外,您也可以將碰撞器設定為觸發器,當玩家走到某個區域,或是觸碰某個物件時,將會觸發設定的事件。

碰撞器的類型
Box Collider 方塊碰撞器 - 適用於方形的碰撞偵測(例如建築物、桌椅、汽車等)。
Sphere Collider 球形碰撞器 - 適用於球形的碰撞偵測。
Capsule Collider 膠囊碰撞器 - 適用於樹木、圓柱的碰撞偵測。
Mesh Collider 網格碰撞器 - 適用於形狀複雜的物件,例如製作場景中的一道門,可以讓玩家控制的角色可以從中間穿越而過。
當您為物件套用碰撞偵測器時,Unity 會自動依物件調整碰撞偵測器的尺寸,您也可以隨時透過屬性檢視器修改碰撞器的大小。

匯入 Character 資源包
使用 [ Standard Assets > Characters > ThirdPersonCharacter > Prefabs ] 資料夾的 ThirdPersonController 遊戲角色練習碰撞功能。
https://ithelp.ithome.com.tw/upload/images/20201008/20130055Fdd2wkEVZW.pnghttps://ithelp.ithome.com.tw/upload/images/20201008/20130055NC54zwVEPe.png

碰撞偵測
建立一個 C# 腳本並套用到玩家角色,碰撞到物件時輸出訊息到 Console 視窗,如果改為 Destroy ( ) 可以刪除碰撞的物件。
https://ithelp.ithome.com.tw/upload/images/20201008/20130055PWKJFO1gE5.pnghttps://ithelp.ithome.com.tw/upload/images/20201008/20130055ZKzeWggvYt.png

碰撞偵測(特定物件)
實際執行之後,您將會發現當角色碰撞任何物件(甚至包括地板)都會執行,在遊戲中大都是碰撞特定物件時執行動作。
以下腳本透過不同的標籤進行判別,執行不同的動作。若碰撞的物件沒有標籤,或者標籤名稱不符合,不會執行動作。
https://ithelp.ithome.com.tw/upload/images/20201008/20130055eH3kWdjxI9.png


上一篇
Unity - 地形建置
下一篇
Unity - 音效處理
系列文
深入淺出做中學Unity(重新挑戰)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言